package com.petter.string;

/**
 * @author : GD
 * @date :2021/12/6 : 11:31
 */
public class InternTest1 {

    public static void main(String[] args) {

//        test1();
        test4();
    }



    private static void test1(){
        String a = "1";
        String b = "1";
        String ab = a + b;
        String ab1 = a + b;
        String ab2 = "11";
        System.out.println(a == b);
        System.out.println(ab1 == ab);
        System.out.println(ab2 == ab);
    }

    private static void test2(){
        String a = "1";
        String b = "1";
        String ab = a + b; // 在内存中创建ab 对象
        // 查询常量池中是否有对应字符串，并将常量池中的字符串对象指向当前对象。
        ab.intern();
        String ab2 = "11";
        System.out.println(a == b);
        System.out.println(ab2 == ab);
    }
    private static void test3(){
        String a = "1";
        String b = "1";
        String ab2 = "11";
        // 常量池中存在11 对象
        String ab = a + b; // 在内存中创建ab 对象
        // 查询常量池中是否有对应字符串，应常量池中已存在11 字符串，则不会指向常量池中的字符串，直接使用当前对象。
        ab.intern();

        System.out.println(a == b);
        System.out.println(ab2 == ab);
    }

    private static void test4(){
        String a = "1";
        String b = "1";
        String ab = a + b; // 在内存中创建ab 对象
        ab.intern();
        String ab2 = "11";
        ab += "1";
        System.out.println(a == b);
        System.out.println(ab2 == ab);
    }
}
